package com.gidgabs.modules.api.controller;

import com.gidgabs.common.annotation.AuthIgnoreApi;
import com.gidgabs.common.utils.BankUtil;
import com.gidgabs.modules.api.service.TbTokenService;
import com.gidgabs.modules.api.service.TbUserService;
import com.gidgabs.common.annotation.LoginUserApi;
import com.gidgabs.common.utils.R;
import com.gidgabs.modules.entity.TbUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;

/**
 * 普通户用
 */
//@Api("用户功能模块-one")
@RestController
@RequestMapping("/api/user")
public class ApiTbUserController {

    @Autowired
    private TbUserService tbUserService;

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Autowired
    private TbTokenService tokenService;

//    /**
//     * 根据类型和关注数量查询用户列表 (分页用于首页商家展示)
//     *
//     * @param pageSize
//     * @param pageNo
//     * @param chooseType
//     * @return
//     */
//    @AuthIgnoreApi
//	@ApiOperation(value = "根据类型和关注数量查询用户列表 (分页用于首页商家展示)")
//	@ApiImplicitParams({
//			@ApiImplicitParam(name = "pageSize",value = "页面大小",dataType = "int",paramType = "form"),
//			@ApiImplicitParam(name = "pageNo",value = "页码",dataType = "int",paramType = "form"),
//			@ApiImplicitParam(name = "chooseType",value = "1商户,2普通用户",dataType = "int",paramType = "form"),
//	})
//	@PostMapping("/list")
//	public ReturnJson<TbUserDto> list(Integer pageSize,Integer pageNo,Integer chooseType){
//        if (pageNo==null){
//            pageNo=1;
//        }if (pageSize==null){
//            pageSize=10;
//        }if (chooseType==null){
//            chooseType=2;
//        }
//		return tbUserService.queryList(pageSize,pageNo,chooseType);
//	}

    /**
     * 修改用户信息
     *
     * @param tbUser
     * @param user
     * @return
     */
    @RequestMapping("/update")
    public R update(@LoginUserApi TbUser tbUser, TbUser user) {
        if (tbUser == null) {
            //设置换回编码为501 需要登录或者登录失效
            return R.error(501, "用户登录失效");
        }
        if (tbUser.getMobile() != null && !tbUser.getMobile().equals("")) {
            //允许修改自己的手机号
            if (!tbUser.getMobile().equals(user.getMobile())) {
                //判断手机号不能重复
                if (user != null && user.getMobile() != null && !user.getMobile().equals("")) {
                    if (tbUserService.queryByMobile(user.getMobile()) != null) {
                        return R.error("手机号已被注册过了");
                    }
                }
            }
        }
        user.setUserCode(tbUser.getUserCode());
        tbUserService.updateByUserCode(user);
        return R.ok();
    }

    /**
     * 删除普通用户(软删除)
     *
     * @param id
     * @return
     */
    public R delete(@RequestParam("id") int id) {
        tbUserService.deleteById(id);
        return R.ok();
    }

    /**
     * 通过uid获取个人资料
     *
     * @return
     */
    @RequestMapping("/infouid")
    public R infoByuid(Integer uid) {
        TbUser tbUser = tbUserService.queryById(uid);
        return R.ok().put("data", tbUser);
    }

    /**
     * 根据银行卡好获取银行卡名称
     *
     * @return
     */
    @AuthIgnoreApi
    @RequestMapping("/getBankName")
    public R getBankName(String bankNumber) {
        return R.ok(BankUtil.getNameOfBank(bankNumber));
    }

}
